/*
 * InputOutputHDF5.h
 *
 *  Created on: Aug 9, 2013
 *      Author: paste
 */

#ifndef INPUTOUTPUTHDF5_H_
#define INPUTOUTPUTHDF5_H_

#include "InputHDF5.h"
#include "OutputHDF5.h"

class InputOutputHDF5 : public virtual InputHDF5, public virtual OutputHDF5
{
public:

  /**
   * Constructor
   * \param fileName The filename to open.
   * \param ioMode The IO mode to use when opening the file.  Can be READ,
   *               which will open the file in read-only mode, APPEND, which
   *               will open the file in read/write mode, or TRUNCATE, which
   *               will open the file in read/write mode but will clear the
   *               contents of the file first.
   * \param matlab A boolean to determine whether to write a Matlab-native file
   *               or not.
   */
  InputOutputHDF5(const std::string &fileName, const IOMode ioMode = APPEND,
      const bool matlab = true) :
      BaseHDF5(fileName, ioMode), InputHDF5(fileName), OutputHDF5(fileName,
          ioMode)
  {
  }

  virtual ~InputOutputHDF5() throw ()
  {
  }

};

#endif /* INPUTOUTPUTHDF5_H_ */
